package com.example.anwserai.demos.web.test;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/*import com.example.anwserai.demos.web.util.QwenApiUtilQ4;*/
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.web.client.RestTemplate;

import static com.example.anwserai.demos.web.util.QwenApiUtilQ40317.getContent;
import static com.example.anwserai.demos.web.util.QwenApiUtilQ40317.restTemplateByOkHttp;


/**
 * @author cao
 * @title test
 * @date 2025/3/14 17:07
 * @description TODO
 */
@Slf4j
public class test0315 {
    private static final RestTemplate restTemplate = restTemplateByOkHttp();

    private static String API_KEY = "sk-b84a7192f4d64f208720f09a363da791";
    private static String MODEL = "qwen-plus";
    private static String API_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";


    public static void main(String[] args) {
        String message = analyzeNotice();
        /*getContent(message);*/
    }
    public static String analyzeNotice() {
        try {
            // 1. 构建请求体（使用Fastjson序列化）
            JSONObject requestBody = new JSONObject();
            requestBody.put("model", MODEL);
            requestBody.put("temperature", 0.1);


            JSONArray messages = new JSONArray();
            messages.add(new JSONObject()
                    .fluentPut("role", "system")
                    .fluentPut("content", "### 角色\n" +
                            "你是一个专业的政府部门文员秘书，擅长各类公文的审核。\n" +
                            "\n" +
                            "### 背景\n" +
                            "政府某部门常年会发出各类公文，公文质量参差不齐，存在各种问题，现在上级要求对公文的质量进行审核，并对各种质量问题进行总结。\n" +
                            "\n" +
                            "### 任务要求\n" +
                            "1.分析输入的公文内容，判断存在的质量问题。\n" +
                            "2.如果为错别字问题，需要定位错别字的开始位置与结束位置。\n" +
                            "3.逐字检查：对文本中的每个字进行核对，确保其符合语境和语法规则。\n" +
                            "4.结合上下文：通过上下文判断词语是否合理（如“暗拳委员会”在公文中明显不合理，应为“安全委员会”）。\n" +
                            "\n" +
                            "### 输出格式\n" +
                            "1.返回数据格式请以标准的json格式，每个字段的值为字符串类型，不要包含额外内容。\n" +
                            "2.返回json字段及处理要求：\n" +
                            "  - errorcontent：出错位置。"+
                            "定位规则：检测文本中的错别词，返回共有多少错别词，且每个错别词在文中的位数。"+
                            "输出示例：'文中一共存在两个错别词。第一个错别词起始位置为正文中的第13位汉字，结束位置为正文中的第15位汉字，错误词为‘小芳’；第二个错别词起始位置为文本中的第24位汉字，结束位置为正文中的第26位汉字，错误词为‘导弹’;'.\n" +
                            "\n" +
                            "### 输出样例：\n" +
                            "  -\"errorcontent\": \"文中一共存在两个错别词。第一个错别词起始位置为正文中的第13位汉字，结束位置为正文中的第15位汉字，错误词为‘小芳’；第二个错别词起始位置为文本中的第24位汉字，结束位置为正文中的第26位汉字，错误词为‘导弹’;\"\n" ));

            messages.add(new JSONObject()
                    .fluentPut("role", "user")
                    .fluentPut("content", "请分析以下督察通知：\n" + "关于做好全市高层民用建筑消防设施\n" +
                            "隐患排查整治及城镇消防站规划建设工作督导\n" +
                            "检查发现问题整改工作的通知\n" +
                            "\n" +
                            "各区、市人民政府，西海岸新区管委，市消防安全委员会相关成员单位：\n" +
                            "近期，市小芳暗拳委员会组成4个督导检查组，对全市高层民用建筑消防设施隐患排查整治专项行动及城镇消防站规划建设工作开展情况进行了督导检查，市消防、公安、住建、城管等部门和市政府督查室参与督导。\n" +
                            "此次督导检查共发现问题19项，根据市政府有关领导指示要求，现将有关情况进行挂牌督办，对于本轮督导检查发现的问题（见附件），请各责任单位切实采取有效措施，按照整改要求，如期高质量完成整改。各单位请于11月30日17:00前上报整改工作部署情况，12月起每月15日、30日15:00前上报整改工作开展、完成情况至市消防安全委员会办公室（金宏网：青岛市消防救援支队防火监督处）。市政府督查室将督帮一体助力推进落实。\n" +
                            "\n" +
                            "     附件：问题清单\n" +
                            "\n" +
                            "                              青岛市消防安全委员会\n" +
                            "                                2023年11月29日\n"));

            requestBody.put("messages", messages);


            HttpHeaders httpHeaders = new HttpHeaders();
            httpHeaders.add("Content-Type", "application/json");
            httpHeaders.add("Authorization", "Bearer " + API_KEY);

            HttpEntity<String> entity = new HttpEntity<>(requestBody.toString(), httpHeaders);
            return restTemplate.exchange(API_URL, HttpMethod.POST, entity, String.class).getBody();
        } catch (Exception e) {
            log.error("请求ai过程中出错", e);
            throw new RuntimeException("请求ai过程中出错");
        }
    }
}
